Software applications written in object-oriented languages such as C++ and Java typically rely on a persistent layer for storing much of their state as well as data. Well-established databases perform the task of owning and delivering data to these software applications. One of the pieces of the data stores is the schema, which is a map defining the structure of the database. The structure of the database is described in a formal language supported by the database management system (DBMS) and refers to the organization of data as a blueprint of how the database is constructed. The schema is typically granulized to the column entities and tables in which to classify and store the data. In a relational database, the schema may define tables, fields, relationships, views, indexes, packages, procedures, functions, queues, triggers, types, sequences, materialized views, synonyms, database links, directories, XML schemas, and other elements.
Schemas are generally stored in a data dictionary. Although a schema is defined in a text database language, the term is often used to refer to a graphical depiction of the database structure. In other words, a schema is the structure of the database that defines the objects in the database.